Circle STARKs
Luca Dall’Ava, 12th of June 2025
Aim of the talk
Present the main ideas behind Circle STARKs.
Table of contents
Recalls on STARKs:
See previous ZKP Seminar by Muhammed Ali Bingol on 23rd June 2025: STARK (Scalable Transparent Arguments of Knowledge) protocol.
STARK = Scalable Transparent ARgument of Knowledge.
- Scalable =
- the prover is at most quasilinear in the size of the computation, and
- the verifier is poly-logarithmic in the size of the computation.
- Transparent = all verifier messages are just publicly sampled random coins.
- No trusted setup needed (hence, no cryptographic toxic waste to handle).
Note that non-interactive STARKs are a subclass of SNARKs (cf. Fiat-Shamir Heuristic). Moreover, STARKs are also (widely accepted to be) quantum-resistant.
Main ingredients of a STARK
- Cryptographic Hash Functions: main cryptographic security assumption.
- Low-Degree Polynomials: STARKs encode a computation into a set of polynomials. The core assumption is that these polynomials have a low degree: proving the correctness of the computation then becomes a matter of proving that these polynomials are indeed low-degree and satisfy certain relationships.
- Key point: LDE = low degree extension (see LDE (Low Degree Extension): Helps encode our sequence. ).
- Commitment Schemes: Provers use a commitment scheme to commit to the polynomials (or more accurately, their evaluations); this is typically done using a Merkle tree (cf. Hash functions!). The verifier can then request and check specific values from the tree using a Merkle path.
- FRI (Fast Reed-Solomon IOP of Proximity): This is the central protocol of a STARK. It is a highly efficient way for a verifier to check that a committed polynomial is, in fact, low-degree. FRI uses a recursive "split-and-fold" method to reduce the problem of checking a large polynomial to checking a much smaller one, a process that is repeated until the remaining polynomial can be verified directly.
Example of a statement (from https://vitalik.eth.limo/general/2017/11/09/starks_part_1.html)
- Statement: Prove that you know the millionth Fibonacci number → Prove that you have knowledge of a polynomial which represents a computation tape, with representing the -th Fibonacci number.
- Constraint checking polynomial: the polynomial represent a constraint forcing the polynomial to represent the Fibonacci sequence; in fact (for fixed ),
- Reformulate: this is true if and only if
- Commitments: the prover commits (Merkle tree commitments) to , , , and , .
- Apply the FRI protocol: the verifier does not check all the evaluations, but use the FRI IOPP to probabilistically check that the equality is satisfied.
Recalls on FRI
See previous ZKP Seminars: FRI -Base aggregation, Polynomial Commitments (Hyrax, KZG, FRI), STARK (Scalable Transparent Arguments of Knowledge) protocol.
FRI = Fast Reed-Solomon IOP of Proximity.
IOP = interactive oracle proof.
FRI is presented in the language of codewords (they are vectors in a vector space!) the prover sends codewords to the verifier who does not read them whole but who makes oracle-queries to read them in select locations. The codewords in this protocol are Reed-Solomon codewords, meaning that their values correspond to the evaluation of some low-degree polynomial in a list of points called the domain.
Goal of FRI
The goal of FRI is that the prover convinces verifier of the committed polynomial is close to a low degree polynomial.
Core of FRI: Split-and-Fold
The Split-and-Fold Technique is the core recursive process within the FRI protocol. It works by "folding" a polynomial into a new, smaller polynomial.
- Splitting: The prover splits the polynomial
into ’s even and odd degree coefficients polynomials
or, in a slightly more general formulation
- Commitment: The prover commits to and which are polynomials of degree .
- Folding: The prover combines and into a new polynomial for the next round: given a random scalar supplied by the verifier, say , the prover defines a new polynomial
This new polynomial has roughly half the degree of .
- Recursion: The process repeats. At each step , the prover commits to a polynomial of degree , receives a challenge , and constructs of degree .
- Final Check: After rounds, we end up with a polynomial of degree 0. The prover sends this constant, and the verifier can check it.
- (The verifier then performs a few random queries on the committed Merkle trees from each round to ensure the folding process was done correctly at those points.)
Key Remark: We can employ an FFT/NTT approach, like considering the Cooley–Tukey FFT algorithm during the recursion.
- The FFT approach can be applied only if:
- we work with polynomials of length which is a power of , and
- by fixing a cyclic subgroup of the invertible elements of the finite field we are employing, in fact, we look at evaluations of the form:
This FFT-like approach is highly efficient only if
- the finite field of prime cardinality is associated with a (so-called) smooth prime, that is, is divisible by a high power of , and
- has order exactly this power (or is close to it).
Example:
- https://en.wikipedia.org/wiki/Fermat_number, numbers of the form , but only known primes (3, 5, 17, 257, and 65537),
- https://en.wikipedia.org/wiki/Proth_prime, primes of the form , with , e.g.:
- the BabyBear prime , or
- the Goldilocks prime .
- Non-example: Mersenne primes, primes of the form are not suitable.
Main issue: We must stick to a precise form of primes. There is a trade-off between easy arithmetic and highly efficient FFT (or FRI).
Elliptic curve STARK and Circle STARK
Let’s abstract a little
In the actual implementation of the Split-and-Fold technique we consider a cyclic subgroup of order , what is happening is that we are considering the squaring group homomorphism:
In particular,
- This homomorphism is a 2-to-1 group endomorphism (),
- whose image is a smaller subgroup of order ,
and this is actually everything that we need in order to split the polynomial in even and odd coefficients and proceed in a recursive fashion.
Question: can we replace with another group and avoid trade-offs with the field arithmetic?
Abstraction
The FFT can be generalized to any group of order as long as we can define an efficiently computable 2-to-1 endomorphism .
- For Elliptic Curves: The group is the set of points on the curve. We can find special curves that have an efficient 2-to-1 endomorphism (a type of isogeny). This map plays the role of the squaring map, allowing the divide-and-conquer strategy to work.
- For Circle STARKs: The circle curve is chosen precisely because it possesses an extremely simple and fast 2-to-1 endomorphism, making the generalized FFT highly performant.
The core idea is that the FFT algorithm is not fundamentally about multiplication and powers of two, but about this recursive structure enabled by a 2-to-1 map.
Main change of paradigm: we work with algebraic geometry codes, rather than with Reed-Solomon codes over , and considering cosets evaluations (that is, ) becomes more delicate in general.
Elliptic Curve STARKs (Ideas)
We work with:
- the group of the set of points on an elliptic curve ,
- a suitable 2-to-1 isogeny (certain special curves have an efficient 2-to-1 isogeny, see §4.1 in [BSCKL22]).
The two papers, [BSCKL21] and [BSCKL22], deal with Elliptic Curve Fast Fourier Transform (ECFFT).
Pros:
- ECFFT works over any finite field.
Cons:
- A standard curve (like secp256k1) is not optimal for general-purpose STARK performance. These curves were designed for properties like pairing-friendliness or specific security levels, not for STARK efficiency. Their structure is not ideal for the FFT-like algorithms, and their underlying fields are often too large for fast CPU arithmetic.
- Rather heavy on Algebraic Geometry (algebraic geometry codes evaluated on sub-groups of elliptic curves, that is, elliptic curve codes, on divisors).
Circle STARK (Circle FFT)
Instead of forcing a STARK onto a pre-existing, non-optimal curve, why don't we design a new curve that is perfectly and deliberately optimized for STARK performance?
cit. U. Haböck
We work with:
- the group of the set of points on the circle curve over ,
with group operation
- the squaring morphism
Note that:
- The inverse is computed as ,
- The circle group is cyclic because the map is a group homomorphism between and a multiplicative subgroup of the field extension , where .
- Recall that strictly if and only if ; e.g. for integers . These are the so-called CFFT-friendly primes.
- If , the order of the circle group is .
Circle Encoding
Let be a polynomial in two variables. The polynomial encoding in Circle STARKs is given considering such polynomials, or, more precisely, polynomials in
Note that, by repeatedly substituting in any polynomial , we can write
and if , then and .
The collection of monomials
spans a basis of .
Circle Split-and-Fold Technique
The procedure here is simplified to convey the basic ideas, but one should fix an evaluation domain (full group) and then consider projection maps to iterate quotient groups; see §4 in [HLP24] for full details.
Now, given a polynomial we can compute the Circle Split-and-Fold Technique as follows:
- We write as by setting
(note that we are considering the involution given by ).
- We batch the two polynomials together into .
- We consider, for the decomposition
for , and hence
For a nice explicit example, see https://hackmd.io/@nsoroush/Byxb9vlWxg#Circle-STARKs by Nil!
A few final considerations about Circle STARK
If we go back to STARK, we have two conflicting requirements for our prime :
- Fast Field Arithmetic (CPU Efficiency): For the prover to be fast, the underlying arithmetic (addition, multiplication) must be fast:
- This is best achieved when is close to a machine word size (like or ), as operations can be performed with single CPU instructions.
- Primes with a special form, like Mersenne primes (), are even better because the expensive "modulo " operation can be replaced with extremely fast bit-shifting and additions.
- FFT-Friendly Domain (Cryptographic Requirement): For the FFT to work, the multiplicative group of the field, , must have an order that is divisible by a large power of two.
Example:
- A "Goldilocks" Prime: The prime is a perfect example of a prime that satisfies both. It fits in a -bit word, making arithmetic fast on modern CPUs. Its group order is , which is divisible by . It's "just right" for traditional STARKs.
Non-example:
- The M31 Dilemma: The Mersenne prime (M31) is extremely fast for CPU arithmetic. However, its group order is . It is only divisible by , making it completely unsuitable for a large FFT.
The Circle STARK Innovation
Circle STARKs resolve this conflict by separating the concerns.
- Field (for speed): Use the ultra-fast M31 field ( where ) for all base arithmetic.
- Domain (for FFTs): Define a new domain using the points on the circle curve . This group of points has order which is a structure needed for an efficient FFT, even though the underlying field does not.
What’s next (maybe in another talk)?
Laurent STARKs, whose main point is to use Laurent polynomials (allow negative terms in a polynomial expansion ) in order to encode polynomial constraints arising from STARK polynomial representations in a more efficient way.
- They have been presented in at ZK13 Summit this year: https://youtu.be/6OJd6qi4xkw?si=F8Tb1AoJAQplFb9x
- Based on Circle STARKs and RC-STARK from https://eprint.iacr.org/2024/1620 by Domb (at Ingonyama).
References
Papers
- [BSBHR18a] - Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev. Fast Reed-Solomon inter- active oracle proofs of proximity. In ICALP 2018, 2018. Full paper: https://eccc.weizmann.ac.il/report/2017/134/.
- [BSBHR18b] - Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev. Scalable, transparent, and post-quantum secure computational integrity. In IACR ePrint Archive 2018/046, 2018. https://eprint.iacr.org/2018/046.
- [BSCKL21] - Eli Ben-Sasson, Dan Carmon, Swastik Kopparty, and David Levit. Elliptic Curve Fast Fourier Transform (ECFFT) Part I: Fast polynomial algorithms over all finite fields. In Electronic Colloquium on Computational Complexity, volume TR21-103, 2021. https: //eccc.weizmann.ac.il/report/2021/103/.
- [BSCKL22] - Eli Ben-Sasson, Dan Carmon, Swastik Kopparty, and David Levit. Scalable and transparent proofs over all large fields, via elliptic curves (ECFFT part II). In IACR ePrint Archive 2022/1542, 2022. https://eprint.iacr.org/2022/1542.
- [HLP24] - Haböck, U., Levit, D., & Papini, S. (2024). Circle STARKs. Cryptology ePrint Archive, Paper 2024/278. Retrieved from https://eprint.iacr.org/2024/278
Talks and notes
Appendix: addendum after the talk
Stwo and complexity
Circle STARKs Efficiency (From [HLP24])
As seen above, Circle STARKs leverage a specialized Fast Fourier Transform (FFT) on the circle curve over the Mersenne prime field (). This approach provides a speedup over traditional FFTs used with other primes.
- Speed-up Factor: Preliminary benchmarks show a 1.4x speed-up for the Circle FFT (CFFT) over the M31 prime compared to a traditional FFT over the Babybear prime ().
- Computational Cost: The CFFT and its inverse for a domain of size have a computational complexity of . More specifically, the cost is around
additions and multiplications.
- Proof Size: The size of the trace domain is , and the evaluation domain size is for a blow-up factor of . The resulting proof size and verification complexity are comparable to classical STARKs.
Stwo (“STARK Two”, pronounced “Stoo”)
Stwo is a next-generation STARK prover that incorporates the efficiency gains of Circle STARKs and other advancements to achieve a significant speedup. While Circle STARKs focused on a new algebraic structure for a specific class of fields, Stwo is a full-fledged prover implementation (https://github.com/starkware-libs/stwo?tab=readme-ov-file) that leverages these ideas.
From the StarkWare blog (15th Mar 2024): Stwo is the name of Starknet’s next-generation prover, set to augment, speed up, and ultimately replace the current prover – Stone (“STARK One”). Stwo’s efficiency, anticipated at 100x the speed of Stone, will use Circle STARKs over M31 (explained above) but also a lot more. Additional innovations include the “log-up” and sum-check protocols (as in this recent work by Haböck and Papini), working simultaneously with several polynomials of different degrees (“mixed degrees”) and new infrastructure for encoding circuits and virtual machines. So, while the expected improvement in STARK proving scale is roughly 100x over Stone, expect additional benefits such as more agile adoption of new compilers and virtual machines, leading to higher development velocity. Read here for more information about Stwo.
Stwo Prover Efficiency
The key performance metrics of Stwo are primarily driven by the underlying M31 field arithmetic.
- FFT Runtime: Benchmarks of Stwo's CFFT show significant performance gains on modern hardware. For an FFT size of with a single thread, the M31 CFFT takes about 1700 ms, whereas the Babybear FFT takes about 2384 ms, confirming the 1.4x speed-up ratio.
- Multi-threading: With 8 threads, the performance gap narrows or disappears due to memory bandwidth becoming the bottleneck. For instance, at an FFT size of , both M31 CFFT and Babybear FFT take around 1400 ms.
- Overall Prover Speed: Stwo boasts a complete prover that is significantly faster than its predecessors, StarkEx and Stone, achieving an order of magnitude speedup for typical proof sizes. This speed is attributed to the combination of the CFFT, M31 field optimizations, and architectural improvements.
- Complexity: Stwo maintains the quasi-linear complexity of STARKs, with prover runtime being roughly , where is the trace length.
These numbers demonstrate a clear advantage for Stwo and Circle STARKs, driven by the strategic choice of the M31 prime and careful implementation of the CFFT algorithm.
References:
- [PH23] - Papini, S., & Haböck, U. (2023). Improving logarithmic derivative lookups using GKR. Cryptology ePrint Archive, Paper 2023/1284. Retrieved from https://eprint.iacr.org/2023/1284.
- [HLP24] - Haböck, U., Levit, D., & Papini, S. (2024). Circle STARKs. Cryptology ePrint Archive, Paper 2024/278. Retrieved from https://eprint.iacr.org/2024/278
Fourier transform: Polynomial encoding in Circle STARK (an idea)
Classical Fourier transform and its inverse over a field
Given a function over a multiplicative subgroup of a finite field with generator and order , the (discrete) Fourier transform is defined as:
The inverse Fourier transform is the unique polynomial of degree less than that interpolates over . Its values are computed from the Fourier transform coefficients as:
Circle Fourier Transform (brief idea)
Similarly, instead of indexing the values of our polynomial over , we index them over the points of the circle, obtaining a function .
Again in a similar fashion, we want to write a function , and the CFFT process involves the evaluation of the monomials
(in ) on the circle point , in order to have (naively and slightly wrong, but it provides the correct intuition behind) a formula which resembles
References:
- [HLN23] - Haböck, U., Lubarov, D., & Nabaglo, J. (2023). Reed-Solomon Codes over the Circle Group. Cryptology ePrint Archive, Paper 2023/824. Retrieved from https://eprint.iacr.org/2023/824.
- [HLP24] - Haböck, U., Levit, D., & Papini, S. (2024). Circle STARKs. Cryptology ePrint Archive, Paper 2024/278. Retrieved from https://eprint.iacr.org/2024/278
